var yuan = {
    username: "yuan",
    age: 22,
    wx: "2389bxk280",
    fn: function () {
        console.log("fn...")
    }
}

var rain = {
    username: "rain",
    age: 23,
    wx: "65zcx4vw32g",
    fn: function () {
        console.log("fn...")
    }
}

yuan = new Proxy(yuan, {
    get(target,p,receiver){
        console.log(target,"查询了属性",p);
        // return window['username'];/// 这里如果这样写. 有递归风险的...
        // return Reflect.get(...arguments);
        return Reflect.get(target,p);
    },
    set(target,p,value,receiver){
        console.log(target,"设置了属性",p, "值为:",value)
        Reflect.set(target,p,value);
    }
})

rain = new Proxy(rain, {
    get(target, p, receiver) {
        console.log(target, "查询了属性", p)
        // return window['username'];/// 这里如果这样写. 有递归风险的...
        // return Reflect.get(...arguments);
        return Reflect.get(target, p);
    },
    set(target, p, value, receiver) {
        console.log(target, "设置了属性", p, "值为：", value)
        Reflect.set(target, p, value);
    }
});

// 源码执行
console.log(yuan.username)
console.log(yuan.wx)
yuan.age = 30
console.log(yuan.age)

// console.log(yuan.wx)
// console.log(yuan.fn())

console.log(rain.age)
console.log(rain.username)
console.log(rain.fn())
